package com.agile.leetcode.hutool.qrcode;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.junit.Test;

import java.awt.*;
import java.io.FileNotFoundException;

/**
 * 生成二维码的demo
 *
 * @Author ChenZhangKun
 * @Date 2021/1/4 9:36
 */
public class QrCodeDemo {
    /**
     * 生成普通的二维码
     */
    @Test
    public void test1() {
        QrCodeUtil.generate("czk", 300, 300, FileUtil.file("D:\\czk\\hutool\\qrcode\\czk.jpg"));
    }

    /**
     * 生成个性的二维码
     */
    @Test
    public void test2() {
        // 创建配置类
        QrConfig qrConfig = new QrConfig(300, 300);
        // 设置二维码与背景之间的边距
        qrConfig.setMargin(3);
        // 设置前景色
        qrConfig.setForeColor(Color.blue);
        // 设置背景色
        qrConfig.setBackColor(Color.gray);
        // 生成二维码
        QrCodeUtil.generate("https://u.wechat.com/MOVmM_W9Lqa7NGH2kVLRmug", qrConfig, FileUtil.file("D:\\czk\\hutool\\qrcode\\wc.jpg"));
        QrCodeUtil.generate("http://192.168.0.107:8081/", qrConfig, FileUtil.file("D:\\czk\\hutool\\qrcode\\baidu.jpg"));
    }

    /**
     * 二维码的识别
     */
    @Test
    public void test3() {
        // 识别二维码
        String content = QrCodeUtil.decode(FileUtil.file("D:\\czk\\hutool\\qrcode\\wechat.jpg"));
        System.out.println(content);
    }

    /**
     * 测试生成json数据
     */
    @Test
    public void test4() throws FileNotFoundException {
        JSONObject jsonObject = JSONUtil.createObj()
                .putOnce("name", "czk")
                .putOnce("ip", "http://www.baidu.com")
                .putOnce("age", 15);
        // 创建配置类
        QrConfig qrConfig = new QrConfig(300, 300);
        // 设置二维码与背景之间的边距
        qrConfig.setMargin(3);
        // 设置前景色
        qrConfig.setForeColor(Color.blue);
        // 设置背景色
        qrConfig.setBackColor(Color.gray);
        // 生成二维码图片
        QrCodeUtil.generate(jsonObject.toString(), qrConfig, FileUtil.file("E:\\czk.jpg"));
    }
}
